home *** CD-ROM | disk | FTP | other *** search
Wrap
CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) NNNNAAAAMMMMEEEE iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee,,,, iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss,,,, iiiillllHHHHwwwwRRRReeeessssoooollllvvvveeeeEEEEnnnnaaaabbbblllleeee,,,, iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss,,,, iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss,,,, iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss,,,, iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss,,,, iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee,,,, iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn,,,, iiiillllSSSSeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn,,,, iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee,,,, iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn,,,, iiiillllGGGGeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn,,,, iiiillllGGGGeeeettttCCCCuuuurrrrCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee,,,, iiiillllFFFFlllluuuusssshhhhCCCCaaaacccchhhheeee,,,, iiiillllCCCCoooommmmppppaaaaccccttttCCCCaaaacccchhhheeee,,,, iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee,,,, iiiillllSSSSeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss,,,, iiiillllGGGGeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss,,,, iiiillllSSSSeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee,,,, iiiillllGGGGeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee,,,, iiiillllSSSSeeeettttDDDDiiiitttthhhheeeerrrr,,,, iiiillllGGGGeeeettttDDDDiiiitttthhhheeeerrrr,,,, iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwRRRReeeemmmmoooovvvveeeeGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwFFFFiiiinnnnddddHHHHiiiinnnnttttIIIIDDDD - convenience functions for configuring the IL environment SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS #include <il/ilCdefs.h> void ilHwSetGlobalEnable(ilHwAccelEnable enable) ilHwAccelEnable ilHwGetGlobalEnable() void ilHwSetGlobalEnableClass(ilClassId id, ilHwAccelEnable enable) ilHwAccelEnable ilHwGetGlobalEnableClass(ilClassId id) ilHwAccelEnable ilHwResolveEnable(ilHwAccelEnable objEnable, iflClassId id) void ilSetMaxCacheSize(int maxBytes) int ilGetMaxCacheSize() void ilSetMaxCacheFraction(float fraction) float ilGetMaxCacheFraction() void ilSetCompactFraction(float maxWastedFraction) float ilGetCompactFraction() int ilGetCurCacheSize() int ilFlushCache(int maxSize) void ilCompactCache(float maxWastedFraction) ilStatus ilConfigureRetainedCache(int tileCount, ilImageTile* tiles, float minBudget, float maxBudget, size_t* retainedFileSize) void ilMpSetMaxComputeThreads(int compute) int ilMpGetMaxComputeThreads() void ilMpSetMaxReadThreads(int read) int ilMpGetMaxReadThreads() void ilSetNumPBuffers(Display* dpy, int num) int ilGetNumPBuffers(Display* dpy) ilStatus ilSetRenderingStyle(Display* dpy, ilRenderingStyle style) ilRenderingStyle ilGetRenderingStyle(Display* dpy) void ilSetDither(int mode) int ilGetDither() ilStatus ilHwSetGlobalHint(ilHwHint* hint, int adopt) ilStatus ilHwSetGlobalIntHint(int hintID, int val) PPPPaaaaggggeeee 1111 CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) ilStatus ilHwSetGlobalIntHintName(const char* hintName, int val) const ilHwHint* ilHwGetGlobalHint(int hintID) const ilHwHint* ilHwGetGlobalHintName(const char* hintName) int ilHwGetGlobalIntHint(int hintID, int* val) int ilHwGetGlobalIntHintName(const char* hintName, int* val) ilStatus ilHwRemoveGlobalHint(int hintID) ilStatus ilHwRemoveGlobalHintName(const char* hintName) int ilHwFindHintID(const char* hintName) DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These functions are used to configure the global IL environment. In particular, the multi-processing, graphics hardware acceleration, the dithering for colorindex images, the use of pbuffers and caching capabilities of the IL can be controlled using these routines. MMMMuuuullllttttiiii----TTTThhhhrrrreeeeaaaadddd CCCCoooonnnnttttrrrroooollll iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss() sets the maximum number of concurrently executing computation threads to _c_o_m_p_u_t_e. The default value for _c_o_m_p_u_t_e is equal to the number of processors on the host. iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss() returns the value of this limit as set by iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss() or the _I_L__C_O_M_P_U_T_E__T_H_R_E_A_D_S environment variable. iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss() sets the maximum number of concurrently executing disk read threads to _r_e_a_d. The default value for _r_e_a_d is one. iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddssssTTTThhhhrrrreeeeaaaaddddssss() returns the value of this limit as set by iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss() or the _I_L__R_E_A_D__T_H_R_E_A_D_S environment variable. The 'set' versions of these routines must be called before issuing any requests that takes advantage of the multi-processing capabilities. IIIImmmmaaaaggggeeee DDDDaaaattttaaaa CCCCaaaacccchhhheeee CCCCoooonnnnttttrrrroooollll The IL maintains a global page data cache for all objects derived from ilCacheImg. The size of this cache can be set either with iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee() or iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn(); the former sets the total size of the cache in bytes, the latter sets the cache size as a fraction of the available user memory on the system. IL's default cache size is 30% of the available memory. The current values of these limits can be obtained with iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee() and iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn(). The current size of the global page cache can be interrogated with iiiillllGGGGeeeettttCCCCuuuurrrrCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee(). The global cache is maintained in a special memory pool that allows the cache memory to be compacted to eliminated memory fragmentation problems. When fragmentation exceeds a defined threshold the pool is automatically compacted. The fragmentation threshold can be set with iiiillllSSSSeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn() to the maximum fraction of the pool that is allowed to be wasted space before compaction occurs. The current value of this threshold can be obtained with iiiillllGGGGeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn(). The default compact fraction value is .2 or 20%. PPPPaaaaggggeeee 2222 CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) You can force compaction of the pool at any time by calling iiiillllCCCCoooommmmppppaaaaccccttttCCCCaaaacccchhhheeee(). If the pool is more fragmented than the fraction passed to this routine it will be compacted. You can pass zero to cause the pool to be unconditionally compacted. You can free the memory in the global page cache to get it down to a desired maximum size with iiiillllFFFFlllluuuusssshhhhCCCCaaaacccchhhheeee(). This call will also cause the cache memory to be compacted. The function iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() provides means to globally analyze an IL operator chain and set the "retained" mode on selected critical operators that can help reduce or eliminate thrashing in a cache-limited situation. If an operator is "retained" then its cache is backed-up to a disk file. When you have insufficient cache to complete an operation without reclaiming any cache pages, it is important to set the retained mode for operators that have a high page recomputation cost, in terms of input cache memory requirements. It's difficult in general to determine the best subset of operators to be retained for a particular operation, so you can use iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() to make this determination. The function must be passed a set of tiles that describe the output data that is being "pulled" for a particular computation. For instance, if you are about to call ggggeeeettttTTTTiiiilllleeee() on a particular image object, then you would pass the single tile, specifying the image and the tile coordinates for the ggggeeeettttTTTTiiiilllleeee() call. On the other hand, if you were about to display a set of images, you would pass an array of tiles, specifying the displayed part of each of the images. The function descends recursively through the IL chain from output to input, using the virtual ilImage method, ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt(), to assess the cache requirements for the specified operation. If at any point in the chain it is determined that the available cache will be exceeded, then one or more operators will be set with the retained cache mode. You can optionally pass minimum and maximum cache budget parameters, expressed as fractions of the total cache, that limit the per-page cost for non-retained operators. The maximum cache budget specifies the cost limit for the output of the chain. This number is reduced as the function traverses from output to input, according to the amount of fan- in at each operator. The minimum cache budget is the lower bound for this reduced cost. The default values are 1.0 and 0.05, respectively. You can lower the maximum cache budget if you want to allow some cushion in the cache. You can raise the minimum cache budget if you are running single-threaded (since input tiles are computed serially in this case). Finally, if the _r_e_t_a_i_n_e_d_F_i_l_e_S_i_z_e argument is non-NULL, then on return it will contain the worst-case total disk requirement, in bytes, of the retained operators. If this number is too large, then you can call the function again with increased budget parameters, which should result in a smaller disk requirement. PPPPaaaaggggeeee 3333 CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) The function returns _i_l_O_K_A_Y if it is successful in meeting the budget requirements. It returns _i_l_F_A_I_L_E_D if not. It returns _i_l_B_A_D_I_N_P_U_T if any of the images in the chain have non-_i_l_O_K_A_Y status. PPPPbbbbuuuuffffffffeeeerrrrssss A _p_b_u_f_f_e_r is a non-visible rendering buffer for an OpenGL renderer. Since rendering to pbuffers makes use of the same graphics acceleration as rendering to the visible framebuffer, pbuffers may be used to cache intermediate results. The number and size of pbuffers available is hardware dependent. iiiillllSSSSeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss() sets the maximum number of pbuffers requested by IL for X display _d_p_y to _n_u_m. iiiillllGGGGeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss() returns the numbers of pbuffers in use. RRRReeeennnnddddeeeerrrriiiinnnngggg SSSSttttyyyylllleeee IL can render using OpenGL or X11. By default, OpenGL is chosen if available. X rendering is used primarily for rendering to a remote machine that does not support OpenGL. A rendering style can be requested explicitly with iiiillllSSSSeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee() and a style of either _i_l_O_p_e_n_G_L_R_e_n_d_e_r_i_n_g or _i_l_X_R_e_n_d_e_r_i_n_g. If OpenGL rendering is requested, but not supported on the X connection, as status of _i_l_U_N_S_U_P_P_O_R_T_E_D is returned, and X rendering is set. iiiillllGGGGeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee() returns the style which is actually in use. DDDDiiiitttthhhheeeerrrriiiinnnngggg ccccaaaappppaaaabbbbiiiilllliiiittttiiiieeeessss IL maintains a global dithering mode, that can be used to control the dithering used to produce colorindex images. iiiillllSSSSeeeettttDDDDiiiitttthhhheeeerrrr() can be used to set the dithering to either _i_l_N_o_D_i_t_h_e_r for no dithering, _i_l_F_S_D_i_t_h_e_r for Floyd-Steinberg dithering or _i_l_S_G_I_D_i_t_h_e_r for standard SGI dithering. iiiillllGGGGeeeettttDDDDiiiitttthhhheeeerrrr returns the current dithering mode. To interpret the value returned by iiiillllGGGGeeeettttDDDDiiiitttthhhheeeerrrr look at the enum iiiillllDDDDiiiitttthhhheeeerrrr in ilConfigure.h. HHHHaaaarrrrddddwwwwaaaarrrreeee AAAAcccccccceeeelllleeeerrrraaaattttiiiioooonnnn CCCCoooonnnnttttrrrroooollll iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee() globally enables or disables the hardware acceleration features of the IL, while iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss() applies to objects of a specific class. The _c_l_a_s_s_I_d parameter is formed using the iiiillllCCCCllllaaaassssssssIIIIDDDD macro defined in <il/ilTypes.h>. The _e_n_a_b_l_e parameter is one of the following values: _i_l_H_w_A_c_c_e_l_O_f_f Hardware acceleration is disabled. _i_l_H_w_A_c_c_e_l_O_n Hardware acceleration is enabled. _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t Fall through to the more generalized enable for hardware acceleration (see below). Specific instantiations of operators can be disabled by using the hhhhwwwwAAAAcccccccceeeelllleeeerrrraaaatttteeee() method on ilImage and ilImgStat. iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee() returns the global hardware acceleration enabling as set by iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee(), or by the environment variable _I_L__H_W__A_C_C_E_L_E_R_A_T_E. Similarly, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss() returns the class-specific enables as set by iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss(). PPPPaaaaggggeeee 4444 CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) The effective acceleration enable for a particular object is determined as follows: first, if the enable member of the object is set to anything other than _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t, then that enable specifies the acceleration for the object. If its enable is _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t, then that object's class enable is checked. If that value is also _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t, then the global enable is checked. The global enable is initialized to the value of the environment variable _I_L__H_W__A_C_C_E_L_E_R_A_T_E, or to iiiillllHHHHwwwwAAAAcccccccceeeellllOOOOnnnn if the environment variable is not set. Use iiiillllHHHHwwwwRRRReeeessssoooollllvvvveeeeEEEEnnnnaaaabbbblllleeee() to query an object's effective enable. HHHHaaaarrrrddddwwwwaaaarrrreeee HHHHiiiinnnnttttssss To control how hardware acceleration is performed, ImageVision provides a set of hardware hints. The ilImage class provides the mechanisms specify hints on individual images. In those cases where the hint is intended to affect all images that support the hint, the a global hint can be set. The iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt function sets a global hint, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt and iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnnttttNNNNaaaammmmeeee retrieves a global hint, and iiiillllHHHHwwwwRRRReeeemmmmoooovvvveeeeGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt and iiiillllHHHHwwwwRRRReeeemmmmoooovvvveeeeGGGGlllloooobbbbaaaallllHHHHiiiinnnnttttNNNNaaaammmmeeee remove a global hint. The functions iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt, iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnnttttNNNNaaaammmmeeee, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt, and iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnnttttNNNNaaaammmmeeee provide a simplified interface to set and get integer-valued hints. The function iiiillllHHHHwwwwFFFFiiiinnnnddddHHHHiiiinnnnttttIIIIDDDD returns the unique global identifier associated with the hint name. It is much more efficient to query hint values using the hint identifier, rather than using its name. The following hints are recognized within the IL (these hint names are declared in _i_l_H_w_H_i_n_t._h): _I_L__T_E_X_T_U_R_E__S_I_Z_E__H_I_N_T An integer-valued texture allotment hint for warp operator input. It specifies the maximum number of texels that can be used by the object. Texture size is also limited by the hardware configuration. _I_L__T_E_X_T_U_R_E__C_O_M_P_O_N_E_N_T__S_I_Z_E__H_I_N_T An integer-valued texture component size hint for warp operators. It specifies the minimum number of bits per component that is used, along with the object's color model and resampling type, to determine the internal texture format. _I_L__T_E_X_T_U_R_E__M_E_S_H__S_T_E_P__H_I_N_T An integer-valued hint that specifies the desired warp mesh step size in units of output pixels. Generally a larger number for this value will reduce mesh generation time at the cost of reduced warp accuracy. The default value is 16. The range of allowable values is from 2 to 128. _I_L__P_I_X_E_L__B_U_F_F_E_R__W_I_D_T_H__H_I_N_T, (_I_L__P_I_X_E_L__B_U_F_F_E_R__H_E_I_G_H_T__H_I_N_T) Integer-valued hints that specify the maximum desired size of a pixel buffer. The actual allocated size of the pbuffer may be smaller than this if the server cannot support the desired size. Also, it is often the case that the server will allocate a PPPPaaaaggggeeee 5555 CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) pbuffer that is larger than the desired size simply because it can only allocate screen-sized pbuffers. In this case the effective size of the pbuffer is the desired size and the remaining server-allocated pbuffer space is unused. These hints are intended for debug purposes only. They have meaning only as global hints. _I_L__T_E_X_T_U_R_E__F_R_O_M__P_B_U_F_F_E_R__O_K__H_I_N_T On RE, RE2, and VTX systems, OpenGL does not swap textures that have been defined via the ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT() call. So, if a texture has been loaded from image data that originated in a pbuffer, and a context switch occurs, or texture must be swapped because it is otherwise overcommitted, then the pbuffer-loaded texture can become undefined. Therefore, on these systems only, the IL disables loading textures from pbuffers. The unfortunate consequence is that multipass operations are severly hampered on RE, RE2, and VTX. If you know that you're application (and any concurrently-running applications) will not overcommit texture, then you may re-enable pbuffer-loaded textures by setting this hint to _T_R_U_E. _I_L__T_E_X_T_U_R_E__L_I_M_I_T__H_I_N_T This is the total texture byte allocation for use by the IL in the application. The IL uses an LRU replacement policy to reclaim textures when this limit is exceeded. The default value is twice the total number of bytes available in texture memory. Here is an example of how hardware hints can be used within a C++ program: ilDisplay* disp = // ... ilImage* input = // ... ilRotZoomImg rz(input, 45, 1, 1, ilBiLinear); // display the warped image using default texture size/format disp->addView(&rz); // limit texture size to 256K texels input->setHwIntHint(IL_TEXTURE_SIZE_HINT, 512*512); // force at least 8 bits per component input->setHwIntHint(IL_TEXTURE_COMPONENT_SIZE_HINT, 8); // display the warped image using at most a 512 by 512 texture // and at least 8 bits per component disp->paint(); SSSSEEEEEEEE AAAALLLLSSSSOOOO IL(1), ilImgStat, ilOpImg, ilCacheImg, ilImage PPPPaaaaggggeeee 6666 CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333)))) NNNNOOOOTTTTEEEESSSS A number of environment variable control the same functions described above. Refer to IIIILLLL((((1111)))) for more details. PPPPaaaaggggeeee 7777